#ifndef __CURVE_RENDERER__
#define __CURVE_RENDERER__

#include "primitiverenderer.h"
#include "curve.h"

class CurveRenderer : public PrimitiveRenderer {
public:
	CurveRenderer(Curve* primitive, size_t samplesPatch = 3, Vec3n color = math::V3n(0.0, 0.0, 1.0),  bool renderControlPolygon = true, bool renderIsoCurves = true);
	virtual ~CurveRenderer();
	virtual void Init();
	virtual void Render() const;
private:
	boost::multi_array<Vec3n, 1>* iso;
	boost::multi_array<Vec3n, 1>* iso_normal;
	size_t numisocurves; 
	size_t samplesPatch;
	GLint list;
	Vec3n color;
	bool renderControlPolygon, renderIsoCurves;
};

#endif //__CURVE_RENDERER__
